맨위로가기

아트멜 AVR

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

AVR은 노르웨이 과학 기술 대학교 학생들이 고안하고 아트멜에서 개발한 8비트 RISC 마이크로컨트롤러 아키텍처이다. 1997년에 소개되어 2003년까지 5억 개가 출하되었으며, 아두이노 플랫폼에 사용되면서 널리 알려졌다. AVR은 중앙 처리 장치와 플래시 메모리를 하나의 칩에 통합한 하버드 아키텍처의 변형으로, tinyAVR, megaAVR, AVR Dx, XMEGA, Application-specific AVR, FPSLIC, 32-bit AVRs 등 다양한 종류가 있다. AVR 칩은 ISP, JTAG, UPDI 등 여러 인터페이스를 통해 프로그래밍할 수 있으며, Atmel-ICE, AVRISP mkII, AVR Dragon 등 다양한 개발 도구와 개발 환경을 지원한다. 자동차, 아두이노, USB, 모터 제어 등 다양한 분야에 응용되며, FPGA 클론 형태로도 개발되고 있다.

더 읽어볼만한 페이지

  • 마이크로컨트롤러 - 마이크로프로세서
    마이크로프로세서는 CPU 기능을 단일 IC에 통합한 것으로, 무어의 법칙에 따라 성능이 향상되어 왔으며 다양한 아키텍처와 기술 발전을 거쳐 현재 광범위한 분야에서 사용된다.
  • 마이크로컨트롤러 - ARM 아키텍처
    ARM 아키텍처는 저전력 설계로 모바일 기기에서 널리 쓰이는 RISC 기반 프로세서 아키텍처로서, IP 코어 라이선스 모델과 ARM Flexible Access를 통해 다양한 분야로 확장되고 있다.
  • 명령어 집합 구조 - ARM 아키텍처
    ARM 아키텍처는 저전력 설계로 모바일 기기에서 널리 쓰이는 RISC 기반 프로세서 아키텍처로서, IP 코어 라이선스 모델과 ARM Flexible Access를 통해 다양한 분야로 확장되고 있다.
  • 명령어 집합 구조 - PA-RISC
    PA-RISC는 휴렛 팩커드에서 개발한 RISC 기반 명령어 집합 아키텍처로, HP 서버 및 워크스테이션에 사용되었으며 대용량 L1 캐시와 SIMD 명령어 확장 등의 특징을 가졌으나 아이테니엄 아키텍처로의 전환으로 단종되었다.
아트멜 AVR
요약
종류
아키텍처8비트, 32비트
명령어 집합 아키텍처Atmel AVR
역사 및 제조사
개발사아트멜 (현재 마이크로칩 테크놀로지에서 인수)
출시일1996년
기술 사양
코어8비트 AVR
32비트 AVR32
32비트 AVR xmega
메모리플래시 메모리, EEPROM, SRAM
클럭 속도0-20 MHz (일반적인 AVR), 최대 32 MHz (AVR32)
인터럽트다중 내부 및 외부 인터럽트 소스
전력 소비저전력 모드 지원
특징
장점사용 용이성
유연성
저렴한 비용
용도임베디드 시스템
아두이노
기타 다양한 전자 제품
제품군
주요 제품군tinyAVR
megaAVR
XMEGA
AVR32
FPSLIC
프로그래밍
프로그래밍 언어C
어셈블리어
개발 환경아트멜 스튜디오
아두이노 IDE
GCC
관련 정보
관련 주제마이크로컨트롤러
임베디드 시스템
아두이노

2. 역사

AVR 아키텍처는 노르웨이 과학 기술 대학교(NTH)의 학생이었던 알프-에길 보겐[1]과 베가르드 월란[2]이 고안하였다. 아트멜은 AVR이라는 이름이 약자가 아니며 특별히 무엇을 의미하는 것은 아니라고 말하지만, AVR이 '''A'''lf와 '''V'''egard의 '''R'''ISC 프로세서를 의미한다는 것이 일반적으로 받아들여지고 있다.[4]

초기 AVR MCU는 당시 노르딕 VLSI(현재는 노르딕 반도체)라고 불리던 ASIC 회사에서 개발되었으며, 보겐과 월란은 트론헤임에서 학생으로 일하고 있었다. 이 기술이 노르딕 VLSI에서 아트멜로 판매되었을 때, 아트멜 노르웨이(Atmel Norway, 아트멜의 자회사)에서 보겐과 월란이 내부 아키텍처를 더욱 발전시켰다. 설계자들은 IAR 시스템즈의 컴파일러 작성자들과 긴밀히 협력하여 AVR 명령어 집합이 컴파일 고급 언어를 효율적으로 지원하도록 했다.[7]

초기 AVR 제품군 중 하나인 AT90S8515는 40핀 DIP 패키지에 외부 멀티플렉싱된 주소 및 데이터 버스를 포함하여 8051 마이크로컨트롤러와 동일한 핀 배열을 가지고 있었다. RESET 라인의 극성은 반대였지만(8051은 액티브 하이 RESET을 가진 반면, AVR은 액티브 로우 RESET을 가짐), 그 외에는 핀 배열이 동일했다.

AVR 8비트 마이크로컨트롤러 아키텍처는 1997년에 소개되었다. 2003년까지 아트멜은 5억 개의 AVR 플래시 마이크로컨트롤러를 출하했다.[8] 2005년에는 간단한 전자 프로젝트를 위해 개발된 아두이노 플랫폼이 출시되었으며, ATmega8 AVR 마이크로컨트롤러를 기반으로 한다.

3. AVR의 구성

AVR은 중앙처리장치와 소용량 플래시메모리가 하나의 IC에 집적되어 있다. 하버드 아키텍처(Harvard architecture)의 변형 형태로 프로그램과 데이터 메모리가 분리된 형태이며, 특수 명령어로 프로그램 데이터를 데이터 영역으로 읽을 수 있다. AVR은 수정된 하버드 구조를 가진 장치로, 프로그램과 데이터가 별도의 물리적 메모리 시스템에 저장되어 다른 주소 공간에 나타나지만, 특수 명령어를 사용하여 프로그램 메모리에서 데이터를 읽어올 수 있다.[10]

100핀 TQFP 패키지의 Atmel ATxmega128A1


ATMEL MEGA32U4 다이 샷


AVR은 32개의 단일 바이트 레지스터를 가지며 8비트 RISC 장치로 분류된다.

플래시, EEPROM, 및 SRAM이 모두 단일 칩에 통합되어 대부분의 응용 분야에서 외부 메모리가 필요하지 않다.

데이터 주소 공간레지스터 파일, I/O 레지스터 및 SRAM으로 구성된다.

AVR의 주요 구성 요소는 다음과 같다.

명칭설명
R0-R25범용 레지스터
R0-R15는 즉치 연산 불가
X(R26,R27)인덱스 레지스터 X
Y(R28,R29)인덱스 레지스터 Y
Z(R30,R31)인덱스 레지스터 Z
PC프로그램 카운터
SP스택 포인터
SREG상태 레지스터


4. AVR의 종류

(MHz)패키지SRAMEEPROM0.5–32 KB1.6–206–32핀 패키지32–3072 바이트64–512 바이트


플래시 크기주파수
(MHz)
패키지SRAMEEPROM
4–256 KB1.6–2028–100핀 패키지256–16384 바이트256–4096 바이트


플래시 크기주파수
(MHz)
패키지SRAMEEPROM출시 연도
16–128 KB20–24 (1.8–5.5V)14–64핀 패키지4–16 KB512 바이트2020


플래시 크기주파수
(MHz)
패키지SRAMEEPROM출시 연도
16–256 KB3244–100핀 패키지1–32 KB512–2048 바이트



교육용으로는 ATmega128이 가장 흔하게 쓰인다.[59]

90S 시리즈를 기반으로 대용량화 및 I/O를 확장한 Mega 시리즈, 고기능화·저소비전력화·저전압 대응을 한 Tiny 시리즈가 있으며, 현재는 Mega 시리즈와 Tiny 시리즈를 주력으로 하지만, 90S 시리즈도 여전히 많이 사용된다.

Tiny 시리즈I/O 핀 수8bit 타이머16bit 타이머PWMFlash memEEPROMSRAM
tiny2313181142kByte128Byte128Byte
tiny4313181144kByte256Byte256Byte
tiny44012512Byte0Byte32Byte
tiny54012512Byte0Byte32Byte
tiny940121kByte0Byte32Byte
tiny1040121kByte0Byte32Byte
tiny1361021kByte64Byte64Byte
tiny20121132kByte0Byte128Byte
tiny24121142kByte128Byte128Byte
tiny26162042kByte128Byte128Byte
tiny40181124kByte0Byte256Byte
tiny44121144kByte256Byte256Byte
tiny4562064kByte256Byte256Byte
tiny8562068kByte512Byte512Byte


5. 프로그래밍 인터페이스

6핀 및 10핀 ISP 헤더 다이어그램


AVR 칩에 프로그램 코드를 전송하는 방법은 여러 가지가 있다. AVR 제품군에 따라 프로그래밍 방법이 다르며, 대부분 RESET 라인을 사용하여 프로그래밍 모드로 진입한다. 칩이 실수로 해당 모드로 들어가는 것을 방지하려면 RESET 핀과 양극 전원 공급 장치 사이에 풀업 저항을 연결하는 것이 좋다.[16]

AVR의 대표적인 개발 환경으로는 Atmel Studio가 있으며, 마이크로소프트 Visual Studio를 기반으로 만들어져 UI가 매우 유사하다.

6. 명령어 집합

AVR 명령어 집합은 대부분의 8비트 마이크로컨트롤러보다 직교적이지만, 완전히 규칙적이지는 않다.[7] C 언어에서의 프로그래밍을 고려하여 설계된 16비트 고정 길이 명령어이다.[7]

AVR 명령어 집합은 메모리 접근은 로드와 스토어만 가능하며, 연산은 레지스터와 레지스터 또는 레지스터와 즉치값 간에만 가능하다. 즉치값 감산 및 캐리 부가 감산을 지원하며, Mega 시리즈는 곱셈 명령어를 지원한다.

특징설명
명령어 길이16비트 고정 길이
메모리 접근로드/스토어 방식
연산레지스터-레지스터 또는 레지스터-즉치값 연산만 가능
기타즉치값 감산, 캐리 부가 감산 지원, Mega 시리즈는 곱셈 명령어 지원



AVR은 하버드 아키텍처이다.

7. 개발 환경

AVR은 저렴한 개발 보드와 무료 개발 소프트웨어를 사용할 수 있어 많은 사용자를 확보하고 있다.

AVR의 대표적인 개발 환경인 Atmel Studio는 마이크로소프트 Visual Studio를 바탕으로 만들어져 사용자 인터페이스(UI)가 매우 유사하며, 현재 7.0 버전까지 나와있다.[60]

GNU 컴파일러 컬렉션(GCC)도 지원하므로 저렴하게 개발 환경을 구축할 수 있다. AVRDUDE (AVR Downloader/UploaDEr)는 리눅스, FreeBSD, 윈도, OS X에서 실행되며 다양한 하드웨어(Atmel AVR ISP mkII, Atmel JTAG ICE)로 프로그래밍을 할 수 있다.[60]

MCS 일렉트로닉스사에서는 4KB(2K워드)까지 코드 생성이 가능한 BascomAVR이라는 BASIC 기반의 컴파일러를 무료로 시험 사용할 수 있도록 공개하고 있다.

아두이노 IDE를 사용하여 C/C++ 기반으로 프로그래밍할 수도 있다. AVRISP MKII와 같은 툴 없이 아두이노를 ISP 툴로 만들어 사용할 수도 있다.

8. 응용 분야

AVR은 자동차, 보안, 안전, 파워트레인 및 엔터테인먼트 시스템 등 다양한 분야에서 사용된다.[42] BMW, 다임러-크라이슬러, TRW에서 사용된 예가 있다.

아두이노 피지컬 컴퓨팅 플랫폼은 ATmega328 마이크로컨트롤러를 기반으로 한다. (Diecimila 이전 보드 버전에서는 ATmega168 또는 ATmega8 사용) 더 많은 핀아웃과 메모리 기능을 갖춘 ATmega1280 및 ATmega2560도 아두이노 메가 플랫폼 개발에 사용되었다. 아두이노 보드는 자체 언어와 IDE와 함께 사용하거나, 표준화되고 널리 사용 가능한 AVR 플랫폼으로서 C, 어셈블러 등 더 전통적인 프로그래밍 환경과 함께 사용할 수 있다.

아두이노 듀에밀라노베 보드에 장착된 아트멜 AVR ATmega328 28핀 DIP


맞춤형 개발 보드에 장착된 아트멜 AVR ATmega8 28핀 DIP


USB 기반 AVR은 마이크로소프트 엑스박스 핸드 컨트롤러에 사용되었다. 컨트롤러와 엑스박스 간의 연결은 USB이다.

AVR 기반 마이크로컨트롤러 보드는 수많은 회사에서 취미, 로봇 제작, 실험 및 소규모 시스템 개발자가 사용할 수 있도록 생산한다. Cubloc,[45] gnusb,[46] BasicX,[47] Oak Micros,[48] ZX Microcontrollers,[49] 및 myAVR[50] 등이 있다. 또한, 유사한 사용자를 지원하는 대규모 아두이노 호환 보드 커뮤니티도 있다.

대한민국에서는 AVR이 전자 공학, 컴퓨터 공학 교육 및 각종 경진대회에서 널리 사용되고 있다.

9. FPGA 클론

FPGA가 오픈 소스 커뮤니티에서 인기를 얻으면서, AVR 명령어 집합과 호환되는 오픈 소스 프로세서들이 개발되기 시작했다. OpenCores 웹사이트에는 다음과 같은 주요 AVR 클론 프로젝트들이 나열되어 있다.

프로젝트명언어설명
pAVR[52]VHDL원래 AVR 프로세서에는 없는 기술(더 깊은 파이프라인 등)을 구현하여 가장 빠르고 기능이 풍부한 AVR 프로세서를 만드는 것을 목표로 한다.
avr_core[53]VHDLATmega103과 최대한 가깝게 만드는 것을 목표로 한다.
Navré[54]Verilog모든 클래식 코어 명령을 구현하고 고성능과 낮은 자원 사용을 목표로 한다. 인터럽트는 지원하지 않는다.
softavrcore[55]VerilogAVR5까지의 AVR 명령어 집합을 구현하고, 인터럽트(선택적인 자동 인터럽트 승인), 절전 모드를 통한 절전, 일부 주변 인터페이스 및 하드웨어 가속기(UART, SPI, 순환 중복 검사 계산 장치, 시스템 타이머 등)를 지원한다. 코어 + 주변 장치 활용에 대한 예시로 전체 기능을 갖춘 FreeRTOS 포트도 패키지 내에서 사용할 수 있다.
CPU 강의[56]VHDLDr. Jürgen Sauermann이 작성하였으며, 완전한 AVR 기반 시스템 온 칩 (SoC) 설계 방법을 자세히 설명한다.


10. 기타

LogicGreen Technologies에서 AVR 복제품을 구할 수 있다.[57] 이 부품들은 원본 칩에는 없는 몇 가지 기능과 더 높은 최대 클럭 속도를 가지고 있지만, 프로그래밍을 위해 ISP 대신 SWD (시리얼 와이어 디버그, ARMJTAG 변형)를 사용하므로 다른 프로그래밍 도구를 사용해야 한다.

ATmega128 아키텍처를 사용하는 마이크로컨트롤러는 러시아 보로네시의 NIIET에서 1887 시리즈의 집적 회로의 일부로 제조되고 있다. 여기에는 명칭 1887VE7T (1887ВЕ7Т|1887VE7Tru)가 포함된다.[58]

참조

[1] 문서 Since 1996, NTH has become part of the [[Norwegian University of Science and Technology]] (NTNU)
[2] 블로그 alfbogen.com blog https://web.archive.[...]
[3] 웹사이트 The Story of AVR https://www.youtube.[...] youtube.com
[4] 웹사이트 UNSW School of Computer Science and Engineering - General AVR Info http://www.cse.unsw.[...] Cse.unsw.edu.au 2012-09-19
[5] 문서 An introduction to Atmel and the AVR microcontroller https://www.itk.ntnu[...]
[6] 웹사이트 Embedded Systems and Microcontrollers http://www.idi.ntnu.[...] 2018-10-01
[7] 서적 The AVR Microcontroller and C Compiler Co-Design http://www.atmel.com[...] Atmel Norway 2012-09-19
[8] 뉴스 Atmel's AVR Microcontroller Ships 500 Million Units http://www.prnewswir[...] Atmel press release
[9] 웹사이트 Field Programmable System Level Integrated Circuit http://www.atmel.com[...]
[10] 문서 atmel.com http://www.atmel.com[...]
[11] 문서 Atmel Smart Card ICs http://www.atmel.com[...]
[12] 웹사이트 AVR319: Using the USI module for SPI communication http://www.atmel.com[...] Atmel 2004
[13] 웹사이트 Atmel AVR310: Using the USI Module as a I2C Master http://www.atmel.com[...] Atmel 2013
[14] 웹사이트 AVR312: Using the USI module as a I2C slave http://www.atmel.com[...] Atmel 2005
[15] 웹사이트 AVR307: Half Duplex UART Using the USI Module http://www.atmel.com[...] Atmel 2003
[16] 웹사이트 AVR Hardware Design Considerations http://www.atmel.com[...] Atmel Corporation 2015-06
[17] 웹사이트 AVRDUDE programmer http://savannah.nong[...] Savannah.nongnu.org 2012-09-19
[18] 웹사이트 PDI programming driver http://ww1.microchip[...] 2012-09-19
[19] 웹사이트 GitHub - ElTangas/Jtag2updi: UPDI programmer software for Arduino (Targets Tiny AVR-0/1/2, Mega AVR-0 and AVR-DA/DB MCUs) https://github.com/E[...] 2021-12-17
[20] 웹사이트 pymcuprog - Python MCU programmer https://github.com/m[...] Microchip PIC&AVR Tools 2022-11-13
[21] 웹사이트 HVSP_Description http://support.atmel[...] Support.atmel.no 2012-09-19
[22] 웹사이트 DES-encrypted AVR Bootloader http://www.atmel.com[...] 2012-09-19
[23] 웹사이트 AES-encrypted AVR Bootloader http://www.atmel.com[...] 2012-09-19
[24] 웹사이트 XMEGA Bootloader http://www.atmel.com[...] 2012-09-19
[25] 웹사이트 AVR USB Bootloader http://www.atmel.com[...] 2012-09-19
[26] 웹사이트 Atmel's Self-Programming Flash Microcontrollers https://pdfslide.net[...] 2020-03-12
[27] 웹사이트 Guide to understanding JTAG and security fuses on the AVR http://www.avrfreaks[...] 2012-09-19
[28] 웹사이트 Atmel-ICE - Atmel Corporation http://www.atmel.com[...] Atmel.com 2015-09-11
[29] 웹사이트 JTAGICE 3- Atmel Corporation http://www.atmel.com[...] Atmel.com 2012-09-19
[30] 웹사이트 AVR JTAGICE mkII http://qaswww.atmel.[...] 2013-01-13
[31] 웹사이트 JTAGICE mkII Communication Protocol http://www.atmel.com[...] 2012-09-19
[32] 웹사이트 AVR Dragon http://www.atmel.com[...] 2013-01-13
[33] 웹사이트 AVR JTAGICE mkII User's Guide http://ww1.microchip[...] 2020-03-25
[34] 뉴스 JTAGICE Press Release, 2004. http://atmel.com/dyn[...]
[35] 웹사이트 STK600 http://qaswww.atmel.[...] 2013-01-13
[36] 웹사이트 AVRISP mkII Disassembled https://www.takeitap[...] 2014-11-08
[37] 웹사이트 AVR1005: Getting started with XMEGA, page 7 http://www.atmel.com[...] Atmel 2011-11-07
[38] 웹사이트 AVR Studio v4.18 Release Notes http://www.atmel.com[...] 2012-09-19
[39] 웹사이트 ECROS Technology - Dragon Rider http://www.ecrostech[...] Ecrostech.com 2012-09-19
[40] 웹사이트 JTAGICE3 Product Page http://www.atmel.com[...]
[41] 웹사이트 AVR ONE! Product Page http://www.atmel.com[...]
[42] 웹사이트 AVR Butterfly http://www.atmel.com[...]
[43] 웹사이트 LUFA (Formerly MyUSB) http://www.fourwalle[...] Four Walled Cubicle 2012-09-19
[44] 웹사이트 avrffreaks.net http://www.avrfreaks[...]
[45] 웹사이트 Comfile Technology http://www.cubloc.co[...] Comfile Technology, Inc. 2013-01-13
[46] 웹사이트 gnusb: Open Source USB Sensor Box http://gnusb.sourcef[...] 2013-01-13
[47] 웹사이트 BasicX http://www.basicx.co[...] NetMedia, Inc. 2013-01-13
[48] 웹사이트 Welcome to Oak Micros http://oakmicros.com[...] Oak Micros 2013-01-13
[49] 웹사이트 ZBasic http://www.zbasic.ne[...] 2013-01-13
[50] 웹사이트 myAVR http://www.myavr.com[...] Laser & Co. Solutions GmbH 2013-01-13
[51] 웹사이트 M3000 Motion controller on a chip http://www.imshome.c[...] Schneider Electric Motion USA 2011-08-02
[52] 웹사이트 pAVR :: Overview http://opencores.org[...] OpenCores 2012-09-19
[53] 웹사이트 AVR Core :: Overview http://opencores.org[...] OpenCores 2012-09-19
[54] 웹사이트 Navré AVR clone (8-bit RISC) Overview http://opencores.org[...] OpenCores 2012-09-19
[55] 웹사이트 Soft AVR Core + Interfaces Overview https://opencores.or[...] OpenCores 2020-06-16
[56] 웹사이트 CPU lecture http://opencores.org[...] OpenCores 2015-02-16
[57] 웹사이트 LGT8F88A FLASH Microcontroller http://www.lgt-semi.[...] LogicGreen Technologies 2019-01-18
[58] 웹사이트 Микроконтроллеры http://niiet.ru/good[...] OAO "NIIET" 2017-08-22
[59] 웹인용 Field Programmable System Level Integrated Circuit http://www.atmel.com[...] 2012-12-17
[60] 웹인용 AVRDUDE programmer http://savannah.nong[...] Savannah.nongnu.org 2012-09-19



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com